Dome9 の Audit イベントを Slack に通知してみた
こんにちは、岩城です。
CloudGuard Dome9(以下、Dome9)のAudit Logsには様々なログが出力されます。このログには、例えばDome9外からのセキュリティグループの変更や、新しいセキュリティグループの追加を検知したイベントが含まれます。
これらのイベントが出力された場合に通知する機能がDome9標準で用意されており、メール通知可能です。
さらにIntegrationsのSNSを利用すれば、Dome9 -> SNS -> Lambda -> Slackという感じでSlackに通知できます。
本エントリでは、上記構成を実際に設定してみたいと思います。
やってみた
SNS -> Lambda -> Slackの構成については、AWSのナレッジセンターに情報があります。本エントリではそのとおり設定していきます。
ウェブフックを使用して Amazon SNS メッセージを Amazon Chime、Slack、または Microsoft Teams に発行する方法を教えてください。
Slack
LambdaからSlackチャンネルへ通知するために、当該チャンネルへのIncoming Webhookの追加およびWebhook URLを控えておきます。このURLはこの後Lambdaのコード内で使用します。
テスト用にdome9-notification
というチャンネルを用意しておきました。これを指定して追加します。
細かい設定は不要です。そのまま設定を完了させます。Webhook URLが表示されますので控えておきます。
設定が完了するとSlackチャンネルで以下のようなメッセージが出力されます。
SNS
次にSNSトピックを設定します。
トピックを設定するにあたって、Dome9の情報が必要になるため、まずはDome9コンソールを確認します。SETTINGS > Integrations > SNSのENABLEを押します。
トピック名の例とアクセスポリシーに設定するAWSアカウントIDを控えておきます。
必要な情報が揃ったのでトピックを作成します。
タイプはスタンダード
を選択し、名前は何でも良いですがDome9コンソールの例のとおりCloudGuard-feed
とします。
アクセスポリシーの設定で、トピックにメッセージを発行できるユーザーを定義します。
指定されたAWSアカウントのみ
を選択し、Dome9コンソールに記載されているAWSアカウントIDをコピー&ペーストします。
トピックを作成して完了です。トピックのARNを控え、Dome9に設定しておきます
Lambda
次にLambdaファンクションを作成します。
関数名は適当で構いません。SNSトピックと同じ名前にしました。ランタイムはPython 3.6です。
実行ロールは基本的なLambdaアクセス権限で新しいロールを作成
を選択します。
SNSトピックをトリガーにLambdaファンクションを実行するため、トリガーを追加します。
トリガーの設定で、SNSおよび先程作成したトピックを選択し追加します。
コードを設定します。urlに控えておいたWebhook URLを設定します。channelは通知先となるdome9-notification
を設定し、Deployします。
Dome9
最後にDome9から通知したいイベントを選択します。
本エントリでは、以下のNetwork Securityイベントを通知するように設定しました。
- Tamper protection
- Dome9外からセキュリティグループの変更を検知し、設定内容をDome9上の設定に巻き戻したことを示すイベント
- Dynamic access leases
- Dome9から一時的にインバウンドルールにSSHを許可するルールが追加されたことを示すイベント
- Security group policy changes (in CloudGuard)
- Dome9からセキュリティグループの変更があったことを示すイベント
- Security group policy changes (not in CloudGuard)
- Dome9外からセキュリティグループの変更があったことを示すイベント
これですべての設定が完了しました。
テスト
それではテストしてみましょう。
テストのシナリオは、Dome9コンソールから、あるセキュリティグループに対して一時的にSSHを許可するルールを追加し、それが通知されることを確認します。
NETWORK SECURITY > Access LeasesからセキュリティグループのGET ACCESS
をクリックします。5分位待つとSlackチャンネルへ以下のような通知が行われます。
おわりに
設定するにあたり一番ハードルが高いと感じられたLambdaについては、AWSのナレッジセンターに情報があったため、比較的簡単に設定できるかと思います。
通知内容については加工していないため、CSV形式で可読性に欠けてそうです。運用を考えるとLambdaのコードを修正して、通知内容を加工した方が良さそうです。
本エントリが、どなたかのお役に立てれば幸いです。